package com.taotao.netty.handler;

import com.alibaba.fastjson2.JSON;
import com.alibaba.fastjson2.JSONObject;
import com.taotao.netty.Command;
import com.taotao.netty.ImServer;
import com.taotao.netty.domain.Result;
import io.netty.channel.ChannelHandlerContext;
import io.netty.handler.codec.http.websocketx.TextWebSocketFrame;

/**
 * @className: OfflineHandler
 * @author: ZhangYuQi
 * @date: 2025/2/27 上午10:50
 * @Version: 1.0
 * @description:
 */


public class OfflineHandler {

    public static void execute(ChannelHandlerContext ctx, Command command) {
        try {
            //判读刷新时用户是否已经上线
            if (ImServer.USERS.containsKey(command.getNickname())) {
                //将当前登录用户从已登录用户map中删除
                ImServer.USERS.remove(command.getNickname());
                //提示其他在线用户
                ImServer.GROUP.writeAndFlush(Result.success("系统消息 （"+command.getNickname()+") 已下线"));
                ImServer.GROUP.writeAndFlush(Result.success("当前在线用户有:"+ JSONObject.toJSONString(ImServer.USERS.keySet())));
                //关闭连接
                ctx.disconnect();
            }
        } catch (Exception e) {
            ctx.writeAndFlush(Result.fail("退出失败"));
        }
    }


}
